package com.example.vo;

import com.example.domain.Lecture;
import lombok.Data;

/**
 * 讲座视图对象
 * 包含讲座基本信息以及关联的图书馆ID和用户报名信息
 * 
 * @author CodeBuddy
 * @date 2025-08-30
 */
@Data
public class LectureVO extends Lecture {
    
    /**
     * 图书馆ID（通过教室关联获取）
     */
    private Long libraryId;
    
    /**
     * 图书馆名称
     */
    private String libraryName;
    
    /**
     * 教室名称
     */
    private String classroomName;
    
    /**
     * 当前用户的报名记录ID（如果已报名）
     */
    private Long registrationId;
    
    /**
     * 当前用户的报名状态
     * 0:待签到, 1:已签到, 2:已取消, null:未报名
     */
    private Integer registrationStatus;
    
    /**
     * 当前用户是否已报名
     */
    private Boolean hasRegistered;
    
    /**
     * 当前报名人数
     */
    private Long currentRegistrations;
    
    /**
     * 剩余名额
     */
    private Integer availableSlots;
    
    /**
     * 是否已满员
     */
    private Boolean isFull;
}